浏览器兼容性
生产捆绑包假定对现代JavaScript有基线支持。 默认情况下，
所有代码都是针对具有本机ESM脚本标签支持的浏览器进行转译的：
Chrome >=61
Firefox >=60
Safari >=11
Edge >=16
轻量级动态导入Polyfill也会自动注入。
您可以通过build.target config选项指定自定义目标，其中最低目标为es2015。
请注意，默认情况下，Vite仅处理语法转换，并且默认情况下不覆盖polyfill。
您可以签出Polyfill.io，这是一项基于用户浏览器的UserAgent字符串
自动生成polyfill捆绑包的服务。
可以通过@ vitejs / plugin-legacy支持旧版浏览器，它将自动生成旧版块和相
应的ES语言功能polyfill。 仅在不具有本机ESM支持的浏览器中有条件地加载旧版块。



公共基础路径
相关：资产处理
如果要在嵌套的公共路径下部署项目，只需指定base config选项，
所有资产路径都将被相应地重写。 也可以将此选项指定为命令行标志，
例如 查看build --base = / my / public / path /。
在构建过程中，将自动调整JS导入的资产URL，CSS url（）引用和.html文
件中的资产引用，以遵循此选项。
例外是当您需要动态地动态链接URL时。 在这种情况下，可以使用全局注入
的import.meta.env.BASE_URL变量，它将是公共基本路径。 请注意，
此变量在构建过程中会被静态替换，因此必须完全按原样显
示（即import.meta.env ['BASE_URL']无法正常工作）。



自定义构建
可以通过各种构建配置选项来自定义构建。 具体来说，您可以通
过build.rollupOptions直接调整基础的汇总选项：
// vite.config.js
module.exports = {
  build: {
    rollupOptions: {
      // https://rollupjs.org/guide/en/#big-list-of-options
    }
  }
}
例如，您可以使用仅在构建期间应用的插件来指定多个汇总输出。



多页应用
假设您具有以下源代码结构：
├── package.json
├── vite.config.js
├── index.html
├── main.js
└── nested
    ├── index.html
    └── nested.js
在开发过程中，只需导航或链接到/ nested /-即可正常工作，
就像正常的静态文件服务器一样。
在构建期间，您需要做的就是指定多个.html文件作为入口点：
// vite.config.js
const { resolve } = require('path')
module.exports = {
  build: {
    rollupOptions: {
      input: {
        main: resolve(__dirname, 'index.html'),
        nested: resolve(__dirname, 'nested/index.html')
      }
    }
  }
}




图书馆模式
在开发面向浏览器的库时，您可能大部分时间都花在导入实际库的测
试/演示页上。 使用Vite，您可以为此使用index.html以获得流畅的开发体验。
是时候捆绑您的库以进行分发了，请使用build.lib config选项。 
确保还要外部化您不想捆绑到库中的所有依赖项，例如 Vue或 react:
// vite.config.js
const path = require('path')
module.exports = {
  build: {
    lib: {
      entry: path.resolve(__dirname, 'lib/main.js'),
      name: 'MyLib'
    },
    rollupOptions: {
      // 确保将不应捆绑的Deps外部化
      // 进入你的图书馆
      external: ['vue'],
      output: {
        // 提供要在UMD构建中使用的全局变量
        // 用于外部部门
        globals: {
          vue: 'Vue'
        }
      }
    }
  }
}

使用此配置运行vite build会使用面向运输库的Rollup预设，
并会产生两种捆绑包格式：es和umd（可通过build.lib进行配置）：
$ vite build
building for production...
[write] my-lib.es.js 0.08kb, brotli: 0.07kb
[write] my-lib.umd.js 0.30kb, brotli: 0.16kb

为您的lib推荐的package.json：
{
  "name": "my-lib",
  "files": ["dist"],
  "main": "./dist/my-lib.umd.js",
  "module": "./dist/my-lib.es.js",
  "exports": {
    ".": {
      "import": "./dist/my-lib.es.js",
      "require": "./dist/my-lib.umd.js"
    }
  }
}






